RangeError: BigInt division by zero

当一个 BigInt0n 除时,会产生 JavaScript 异常“BigInt division by zero”。

错误信息

RangeError: Division by zero (V8-based)
RangeError: BigInt division by zero (Firefox)
RangeError: 0 is an invalid divisor value (Safari)

错误类型

哪里出错了?

当使用除法或者取余运算符时,如果除数为 0n 则会触发该错误。在 Number 运算中,除以 0n 会得到 Infinity,但在 BigInt 中不存在“Infinity”这一值,因此会抛出错误。在使用除法前,请先检查除数是否为 0n

示例

被 0n 除

js
const a = 1n;
const b = 0n;
const quotient = a / b;
// RangeError: BigInt division by zero

相反,应首先检查除数是否为 0n,并给出更友好的提示或者使用其他值,例如 Infinityundefined

js
const a = 1n;
const b = 0n;
const quotient = b === 0n ? undefined : a / b;

参见